package ranveterinaria.servlet;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import ranveterinaria.excepcion.DatoIncorrectoExcepcion;
import ranveterinaria.modelo.DuenoModelo;
import ranveterinaria.modelo.PacienteModelo;
import ranveterinaria.negocio.GestionPaciente;

/**
 * Servlet implementation class PacienteNuevo
 */
@WebServlet("/PacienteNuevo")
public class PacienteNuevo extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public PacienteNuevo() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
GestionPaciente negocio = new GestionPaciente();
		
		try {
			DuenoModelo duenoModelo = new DuenoModelo();				
			
			String[] date1 = request.getParameter("txtFechaNacimiento").split("-");
			Date fechaFormato = new SimpleDateFormat("yyyy/MM/dd").parse(date1[0]+"/"+date1[1]+"/"+date1[2]);	
			
			duenoModelo.setCodigoDueno(Integer.parseInt(request.getParameter("txtDueno")));
			
			PacienteModelo pacienteModelo = new PacienteModelo();			
			pacienteModelo.setDuenoModelo(duenoModelo);	
			pacienteModelo.setEspeciePac(request.getParameter("txtDueno"));
			pacienteModelo.setRazaPac(request.getParameter("txtRaza"));
			pacienteModelo.setGeneroPac(request.getParameter("txtGenero"));
			pacienteModelo.setTipoSangrePac(request.getParameter("txtTipoSangre"));
			pacienteModelo.setEsterelizadoPac(Integer.parseInt(request.getParameter("cboEstirilizado"))); //0=False ; 1=True
			pacienteModelo.setTamanoPac(request.getParameter("txtTamano"));
			pacienteModelo.setActividadPac(request.getParameter("txtActividad"));
			
			try{
				pacienteModelo.setPesoPac(Double.parseDouble(request.getParameter("txtPeso")));
				
				if(Double.parseDouble(request.getParameter("txtPeso")) <= 0){
					throw new Exception("El peso debe ser un dato decimal mayor que cero");
				}
				
			}catch(Exception n){
				throw new Exception("El peso debe ser un dato decimal mayor que cero");
			}

			
			pacienteModelo.setFechaNacPac(fechaFormato);			
			
			negocio.insertar(pacienteModelo);
			request.setAttribute("MENSAJEEXITO", "Paciente registrado exitosamente");
			RequestDispatcher rd = request.getRequestDispatcher("Formularios/Paciente.jsp");
			rd.forward(request, response);

		} catch (Exception e) {
			e.printStackTrace();
			request.setAttribute("MENSAJEERROR", e.getMessage());
			RequestDispatcher rd = request.getRequestDispatcher("Formularios/Paciente.jsp");
			rd.forward(request, response);	
		}
	}

}
